Engineers use compression (also called source coding or source encoding) to reduce the bit rate of digital video. Compression decreases the cost of storing and transmitting video information by converting the information into a lower bit rate form. Decompression (also called decoding) reconstructs a version of the original information from the compressed form. A “codec” is an encoder/decoder system.
Over the last 25 years, various video codec standards have been adopted, including the ITU-T H.261, H.262 (MPEG-2 or ISO/IEC 13818-2), H.263, H.264 (MPEG-4 AVC or ISO/IEC 14496-10) standards, the MPEG-1 (ISO/IEC 11172-2) and MPEG-4 Visual (ISO/IEC 14496-2) standards, and the SMPTE 421M (VC-1) standard. More recently, the H.265/HEVC standard (ITU-T H.265 or ISO/IEC 23008-2) has been approved. Extensions to the H.265/HEVC standard (e.g., for scalable video coding/decoding, for coding/decoding of video with higher fidelity in terms of sample bit depth or chroma sampling rate, for screen capture content, or for multi-view coding/decoding) are currently under development. A video codec standard typically defines options for the syntax of an encoded video bitstream, detailing parameters in the bitstream when particular features are used in encoding and decoding. In many cases, a video codec standard also provides details about the decoding operations a video decoder should perform to achieve conforming results in decoding. Aside from codec standards, various proprietary codec formats define other options for the syntax of an encoded video bitstream and corresponding decoding operations.
As new video codec standards and formats have been developed, the number of coding tools available to a video encoder has steadily grown, and the number of options to evaluate during encoding for values of parameters, modes, settings, etc. has also grown. At the same time, consumers have demanded improvements in temporal resolution (e.g., frame rate), spatial resolution (e.g., frame dimensions), and quality of video that is encoded. As a result of these factors, video encoding according to current video codec standards and formats is very computationally intensive.
Despite improvements in computer hardware, video encoding remains time-consuming and resource-intensive in many encoding scenarios. In particular, in many cases, evaluation of whether a particular picture portion (e.g., a coding unit or block) has little or no changes from a previously encoded co-located picture portion, thereby making it a likely candidate for skip-mode encoding, during video encoding can be time-consuming and resource intensive.